add rd, rs1, rs2
:將來自 rs1
和 rs2
兩個 registers 的值相加,結果存入 rd
registers 中。sub rd, rs1, rs2
:將 rs1
registers 中的值減去 rs2
中的值,結果存入 rd
。addi rd, rs1, imm
:將 rs1
中的值與立即數 imm
相加,結果存入 rd
中。lw rd, offset(rs1)
:從記憶體中載入資料,偏移量由 offset
指定,將結果存入 rd
。sw rs2, offset(rs1)
:將 rs2
中的數據存到 rs1
指定的記憶體位址,偏移量由 offset
指定。lw
(Load Word) 指令:用來從記憶體載入 32 位元的資料(1 字 = 4 個位元組)到 registers 中。lw x10, 12(x15) # 從 x15 指定的記憶體位址加上 12 的偏移量,載入資料到 x10。
x15
是基址 registers,記憶體位址為 x15
中儲存的地址加上偏移量 12
。sw
(Store Word) 指令:用來將 32 位元的資料從 registers 存到記憶體。sw x10, 40(x15) # 將 x10 中的資料存到 x15 基址加 40 的記憶體位址。
x15
是基址寄存器,偏移量是 40
位元組。lb
(Load Byte) 和 sb
(Store Byte) 指令用來處理單一位元組的載入和存儲。lb
會將記憶體中的一個位元組載入到 registers 中,並進行符號擴展,而 lbu
則會將載入的位元組進行無符號擴展。lw x10, 12(x15) # 從 x15 基址加 12 的位址,載入資料到 x10。
x15
基址加上 12 偏移量的值載入到 x10
。sw x10, 40(x15) # 將 x10 中的數據存入到 x15 基址加 40 的記憶體位址。
x10
registers 中的資料存到 x15
基址加上 40 偏移量的位置。